﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using PortalCurriculo.Domain;
using PortalCurriculo.WebUI.Helpers;

namespace PortalCurriculo.WebUI.Selecionadores
{
    public partial class ConsultoriasVaga : RecruiterAccessHelper
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack) return;

            int idVaga = ParseIdQueryString("~/Selecionadores/MinhasVagas.aspx");
            int idEmpresa = new Vaga{Id = idVaga}.Selecionar().IdEmpresa;

            var consultorias = new EmpresaConsultoria{IdEmpresa = idEmpresa}.SelecionarLista();

            lsvConsultoria.DataSource = consultorias;
            lsvConsultoria.DataBind();
        }

        protected void lsvConsultoria_ItemDataBound(object sender, ListViewItemEventArgs e)
        {
            var item = (ListViewDataItem)e.Item;
            var empresaConsultoria = (EmpresaConsultoria)item.DataItem;

            var nome = (Label)item.FindControl("lblNome");
            var email = (Label)item.FindControl("lblEmail");
            var site = (Label)item.FindControl("lblSite");
            var telefone = (Label)item.FindControl("lblTelefone");
            var selecionado = (CheckBox)item.FindControl("chkSelecionado");

            nome.Text = empresaConsultoria.Empresa.Usuario.Pessoa.PessoaJuridica.NomeFantasia;
            email.Text = empresaConsultoria.Empresa.Usuario.Pessoa.Email;
            site.Text = empresaConsultoria.Empresa.Usuario.Pessoa.Site;
            selecionado.Attributes.Add("IdConsultoria", empresaConsultoria.IdConsultoria.ToString());

            if (empresaConsultoria.Empresa.Usuario.Pessoa.Telefones.Count > 0)
                telefone.Text = empresaConsultoria.Empresa.Usuario.Pessoa.Telefones.First().Numero;
        }

        protected void lnkSalvar_Click(object sender, EventArgs e)
        {
            var idConsultorias = hdnIdConsultorias.Value.Split(';');

            foreach (string idConsultoria in idConsultorias)
            {
                int idConsult;
                if (!int.TryParse(idConsultoria, out idConsult)) continue;

                var vagaRh = new VagaRH
                                 {
                                     Ativo = true,
                                     IdConsultoriaRH = idConsult,
                                     IdVaga = ParseIdQueryString(),
                                     Status = new VagaRH().ConverterStatus(VagaRH.StatusVaga.Pendente)
                                 };

                vagaRh.Save();
            }

            Response.Redirect(string.Concat("~/Selecionadores/VisualizarVaga.aspx?Id=", ParseIdQueryString()));
        }

        protected void chkSelecionado_CheckedChanged(object sender, EventArgs e)
        {
            var chkSelecionado = ((CheckBox) sender);

            string idConsultoria = chkSelecionado.Attributes["IdConsultoria"] + ";";

            if (chkSelecionado.Checked)
                hdnIdConsultorias.Value += idConsultoria;
            else
            {
                hdnIdConsultorias.Value = hdnIdConsultorias.Value.Replace(";" + idConsultoria, ";");

                if (hdnIdConsultorias.Value.StartsWith(idConsultoria))
                    hdnIdConsultorias.Value = hdnIdConsultorias.Value.Substring(idConsultoria.Length-1, hdnIdConsultorias.Value.Length - idConsultoria.Length);
            }
        }
    }
}